package com.dmgis.hndz.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dmgis.hndz.service.SysConfigService;
import com.dmgis.hndz.mapper.SysConfigMapper;
import com.dmgis.hndz.pojo.SysConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class SysConfigServiceImpl extends ServiceImpl<SysConfigMapper, SysConfig>
        implements SysConfigService {

    @Resource
    private SysConfigMapper sysConfigMapper;

    @Override
    public List<String> getMonitorTemplates(String paramName) {
        return sysConfigMapper.selectMonitorTemplates(paramName);
    }

    @Override
    public List<String> getTemplates(String paramName) {
        return sysConfigMapper.searchTemplates(paramName);
    }

    @Override
    public Integer updateByParamName(SysConfig sysConfig) {
        LambdaUpdateWrapper<SysConfig> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.eq(SysConfig::getParamname,sysConfig.getParamname());
        Integer rows = sysConfigMapper.update(sysConfig, updateWrapper);
        return rows;
    }

    @Override
    public Integer updateSysConfig2(SysConfig sysConfig) {
        return sysConfigMapper.update(sysConfig,Wrappers.<SysConfig>lambdaUpdate()
                .eq(SysConfig::getParamname,sysConfig.getParamname())
                .eq(SysConfig::getParamtype,sysConfig.getParamtype()));
    }

    @Override
    public Integer saveSysConfig(SysConfig sysConfig) {
        return baseMapper.insert(sysConfig);
    }


    @Override
    public List<SysConfig> getList(String paramType) {
        LambdaQueryWrapper<SysConfig> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(SysConfig::getParamtype,paramType)
                .orderByAsc(SysConfig::getId);
        List<SysConfig> sysConfigs = sysConfigMapper.selectList(queryWrapper);
        return sysConfigs;
    }

    @Override
    public List<SysConfig> getServiceLanguage() {
        return sysConfigMapper.selectList(Wrappers.<SysConfig>lambdaQuery()
                .eq(SysConfig::getParamtype,"服务用语"));
    }

    @Override
    public List<SysConfig> getList1() {
        return sysConfigMapper.selectList(null);
    }

    @Override
    public List<SysConfig> getSysConfig1(String paramType, String paramName) {
        return sysConfigMapper.selectList(Wrappers.<SysConfig>lambdaQuery()
                .eq(SysConfig::getParamtype,paramType)
                .eq(SysConfig::getParamname,paramName));
    }
}
